'use strict';

const Controller = require('../core/base_controller');

var uuid = require('uuid');


/*
	前端本地保存token。
	如果没有token调用登录获取。


	登录接口：前端传code过来，通过code获取用户openid。更新用户数据库，如果没有则插入。
	生成token，用户信息传入redis，token做key。
	将token传回前端保存，前端设置保存时间。

	前端每次调用接口的时候，带着token，用来验证登录状态。



*/

class Member extends Controller {

	async login () {

		const { app, ctx } = this;

		const { code, nickName, avatarUrl } = ctx.request.body;

		//获取openid
		let url = 'https://api.weixin.qq.com/sns/jscode2session?appid=wx3dfaa83570a07a31&secret=71e4a4fe68f38910444578e606caf807&js_code='+code+'&grant_type=authorization_code'

		const result = await ctx.curl(url, { dataType: 'json' });

		console.log(result);

		const openid = result.data.openid;

		const uuidstr = uuid.v1();

		await app.redis.get('user').hset('user_' + uuidstr, 'openid', openid);
		await app.redis.get('user').hset('user_' + uuidstr, 'nickName', nickName);
		await app.redis.get('user').hset('user_' + uuidstr, 'avatarUrl', avatarUrl);

		this.success({
			uuidstr,
			result,
		});

	}



}


module.exports = Member;